package com.triones.api.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.triones.api.entity.CryptoExchangeDO;
import com.triones.api.entity.CryptoSysBillDO;
import com.triones.api.entity.CryptoTransferDO;
import com.triones.api.entity.param.GlobalAccountParams;
import com.triones.api.entity.vo.*;

import java.math.BigDecimal;
import java.util.List;

/**
 * 全球账户
 */
public interface GlobalAccountService {

//    /**
//     * 入账列表（分页）
//     * @param globalAccountParams
//     * @param pageQuery
//     * @return
//     */
//    TableDataInfo<GlobalAccountEntryVO> entryPageList(GlobalAccountParams globalAccountParams, PageQuery pageQuery);

    /**
     * leptage全球账户列表
     * @param ccy
     * @return
     */
    List<LeptageGlobalAccountVO> leptageList(String ccy);

    /**
     * 提现交易列表（分页）
     * @param dto
     * @param pageQuery
     * @return
     */
    TableDataInfo<CryptoSysBillVO> withdrawPageList(CryptoSysBillDO dto, PageQuery pageQuery);

    /**
     * 划转列表（分页）
     * @param dto
     * @param pageQuery
     * @return
     */
    TableDataInfo<CryptoTransferVO> transferPageList(CryptoTransferDO dto, PageQuery pageQuery);

    /**
     * 换汇列表（分页）
     * @param dto
     * @param pageQuery
     * @return
     */
    TableDataInfo<CryptoExchangeVO> exchangePageList(CryptoExchangeDO dto, PageQuery pageQuery);

    /**
     * 更新累计金额
     * @param amount
     */
    void updateCumulativeAmount(BigDecimal amount);

    /**
     * 更新实时余额
     */
    void updateRealTimeBalance();
}
